14519
10869
所以我在弄清楚list :: sort()關於結構列表的正確使用時遇到了一些麻煩。以下是相關代碼:
結構學生
{
char firstnm [20],
lastnm [20];
整數ID,
年級;
};
list  sList;
//不正確的代碼...
cout <<“,請輸入您自己的姓名,身份證和等級。(例如:myfirst mylast 0 12)\ n”;
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back(data);
sList.sort();
我想解決的問題是使用sList.sort()按ID排序。但是,我不知道如何正確地將其傳遞給list :: sort()。在此先感謝您的幫助/時間!
編輯:解決方案只是將其添加到我的結構
布爾運算符<(const student&cmp)const {
返回id 
                                
您應該看一下std :: sort。 (https://en.cppreference.com/w/cpp/algorithm/sort)該函數有多種定義,您可以在其中定義要排序的內容。
另外,看看那個帖子,我認為這就是您需要的:https://stackoverflow.com/a/21234017/6663947
編輯:
多數民眾贊成在比較例:
sList.sort([](const student&a,const student&b){return a.id 
無效排序(比較比較);
假設您要根據鍵ID升序對列表中的學生對象進行排序。您可以為用戶定義的學生班級定義operator <,方法是:
bool運算符<((學生const&a,學生const&b){
返回a.id